# 此工具类为装换mongoose属性专用


_ = require 'underscore'

module.exports = (attributes, values) ->
  attributes = _.map attributes, (attr) ->
    switch attr.type.toLowerCase()
      when "array" # 替换Array属性为Array（应该是mongoose的bug，不能用字符串Array）
        attr.type = Array
        return unless values
        arr = [] #空数组
        # 原本有数组值
        if (Array.isArray(values[attr.name]))
          arr = values[attr.name]
        else
          if _.isString(values[attr.name])
            # 使用字符串split
            arr = values[attr.name].split(',')
        #最后赋值回去
        values[attr.name] = _.without(arr, ',', '') if values
      when "image","strings" # 替换自定义Image、Strings属性为String
        attr.type = 'String'
      when "imagearray" # 替换自定义ImageArray属性为[String]
        attr.type = [String]
        return unless values
        imgs = []
        if (Array.isArray(values[attr.name]))
          imgs = values[attr.name]
        else
          if _.isString(values[attr.name])
            # 使用字符串split
            imgs = values[attr.name].split(',')
        values[attr.name] = _.without(imgs, ',', '') if values
      when "mixed"
        attr.type = {}
      else
        attr
